package com.jwsoft.manager.core.integration;

import com.github.pagehelper.PageInfo;
import com.jwsoft.manager.common.vo.eduStudentEnroll.BindEnrollQueryVO;
import com.jwsoft.manager.common.vo.eduStudentEnroll.BindEnrollVO;
import com.jwsoft.manager.common.vo.eduStudentEnroll.StudentEnrollCntVO;
import com.jwsoft.manager.common.vo.eduStudentEnrollKindergarten.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;


/**
 * 幼儿园报名管理业务本地接口
 *
 * @author chenzh
 * @since 2023-02-10
 */
public interface EduStudentEnrollKindergartenIntegration {
    /** 分页查询 */
    PageInfo<EduStudentEnrollKindergartenVO> getList(EduStudentEnrollKindergartenQueryVO vo);
    /** 根据主键查询详情 */
    EduStudentEnrollKindergartenVO getById(EduStudentEnrollKindergartenKeyVO vo);
    /** 保存前统一校验*/
    void checkSave(EduStudentEnrollKindergartenVO vo);
    /** 新增 */
    EduStudentEnrollKindergartenVO add(EduStudentEnrollKindergartenVO vo);
    /** 家长端报名 */
    EduStudentEnrollKindergartenVO addApp(EduStudentEnrollKindergartenVO vo);
    /** 线下报名录入 */
    EduStudentEnrollKindergartenVO addBySchool(EduStudentEnrollKindergartenVO vo);
    /** 修改 */
    EduStudentEnrollKindergartenVO editBase(EduStudentEnrollKindergartenVO vo);
    /** 根据主键删除 */
    void del(EduStudentEnrollKindergartenKeyVO vo);
    /** 报名退回 */
    void nurseryFormBack(EduStudentEnrollKindergartenKeyVO vo);
    PageInfo<EduStudentEnrollKindergartenVO> getNurseryFormInfoByIdcard(KindergartenIdcardQueryVO vo);
    /**
     * 一键到待审核
     * */
    void nurseryBackAuth(EduStudentEnrollKindergartenKeyVO vo);
    /**
     * 设置报名无效
     * */
    void nurserySetStatus(EduStudentEnrollKindergartenKeyVO vo);
    /**
     * 审核
     * */
    void auth(EduStudentEnrollKindergartenAuthVO vo);
    /**
     * 录取单个
     * */
    void admit(EduStudentEnrollKindergartenAdmitVO vo);
    /**
     * 录取批量
     * */
    void admitBatch(EduStudentEnrollKindergartenAdmitVO vo);
    /**
     * 退回数据重新补录
     * */
    void backDel(EduStudentEnrollKindergartenVO vo);
    /**
     * excel数据导出
     * */
    void downloadData(EduStudentEnrollKindergartenQueryVO vo, HttpServletResponse response);

    PageInfo<KindergartenCompareVO> getNurseryHouseCompareData(KindergartenCompareVO vo);

    PageInfo<KindergartenCompareVO> getNurseryHouseHoldCompareData(KindergartenCompareVO vo);

    void nurseryDataCompare(KindergartenCompareVO vo);


    PageInfo<KindergartenCompareVO> getNurseryHouseAndHouseHoldCompareData(KindergartenCompareVO vo);

    /**
     * 判断是否可以摇号绑定
     */
    List<BindEnrollVO> checkBind(BindEnrollQueryVO vo);

    //报名人数情况查询
    StudentEnrollCntVO queryKindergartenBmCnt(EduStudentEnrollKindergartenQueryVO vo);

    PageInfo<EduStudentEnrollKindergartenVO> getKindergartenEnrollLottery(EduStudentEnrollKindergartenQueryVO vo);

    void  exportKindergartenEnrollLottery(EduStudentEnrollKindergartenQueryVO vo,HttpServletResponse response);

    KindergartenApplyFileVO inputKindergartenApplyInfo(KindergartenApplyFileVO vo, MultipartFile file);

    void checkKindergartenExp(EduStudentEnrollKindergartenQueryVO vo);

     void clearnurseryhc(EduStudentEnrollKindergartenQueryVO vo);

    void clearNurseryQueryCache(EduStudentEnrollKindergartenQueryVO vo);

}
